#ifndef __MPU6050_H
#define __MPU6050_H
 
#define MPU6050Addr 	0xD0

#define MPU6050_RA_SMPLRT_DIV       0x19    //采样频率分频器
#define MPU6050_RA_CONFIG           0x1A    //配置
#define MPU6050_RA_GYRO_CONFIG      0x1B    //陀螺仪配置
#define MPU6050_RA_ACCEL_CONFIG     0x1C    //加速度计配置

#define MPU6050_RA_INT_PIN_CFG      0x37
#define MPU6050_RA_INT_ENABLE       0x38

#define MPU6050_RA_ACCEL_XOUT_H     0x3B     //加速度计X轴高位
#define MPU6050_RA_ACCEL_XOUT_L     0x3C     //加速度计X轴底位
#define MPU6050_RA_ACCEL_YOUT_H     0x3D     //加速度计Y轴高位
#define MPU6050_RA_ACCEL_YOUT_L     0x3E     //加速度计Y轴底位
#define MPU6050_RA_ACCEL_ZOUT_H     0x3F
#define MPU6050_RA_ACCEL_ZOUT_L     0x40
#define MPU6050_RA_TEMP_OUT_H       0x41     //温度测量值高位
#define MPU6050_RA_TEMP_OUT_L       0x42
#define MPU6050_RA_GYRO_XOUT_H      0x43     //陀螺仪X轴高位
#define MPU6050_RA_GYRO_XOUT_L      0x44
#define MPU6050_RA_GYRO_YOUT_H      0x45
#define MPU6050_RA_GYRO_YOUT_L      0x46
#define MPU6050_RA_GYRO_ZOUT_H      0x47
#define MPU6050_RA_GYRO_ZOUT_L      0x48

#define MPU6050_RA_PWR_MGMT_1       0x6B       //电源管理1
#define MPU6050_RA_PWR_MGMT_2       0x6C       //电源管理2
#define MPU6050_RA_WHO_AM_I         0x75       //设备ID
 
 //设置低通滤波
#define MPU6050_DLPF_BW_256         0x00
#define MPU6050_DLPF_BW_188         0x01
#define MPU6050_DLPF_BW_98          0x02
#define MPU6050_DLPF_BW_42          0x03
#define MPU6050_DLPF_BW_20          0x04
#define MPU6050_DLPF_BW_10          0x05
#define MPU6050_DLPF_BW_5           0x06
 
//供外部调用的API
void MPU6050_Init(void); //初始化;
void MPU6050_Check(void);
void MPU6050_Read(void);
void MPU6050_Offset(void);
void MPU6050_CalOff(void);
void MPU6050_CalOff_Acc(void);
void MPU6050_CalOff_Gyr(void);
void MPU6050_GyroRead(int16_t *gyroData);
void MPU6050_AccRead(int16_t *accData);
void MPU6050_TempRead(float *tempdata);
uint8_t MPU6050_testConnection(void);



#endif